/**
 * 
 */
package com.rst.doc.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.rst.common.domain.CommonDetailsTable;

/**
 * @author JavaDeamon
 *
 */

@Entity
@Table(name="DOCUMENT_DETAILS")
public class DocumentDetailsDTO extends CommonDetailsTable implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -7327734057246720475L;
	private Long documentId;
	private String documentName;
	private String documentDesc;
	private Integer docTypeId;
	private Integer docCategId;
	private Integer docSubCategId;
	private String docOwnerId;
	private String docOwnerName;
	private Integer docLocationId;
	private Integer docDepartmentId;
	private Integer docOrganizationId;
	
	private Date docValidityStartDate;
	private Date docValidityEndDate;

	
	/**
	 * @return the documentId
	 * primary key
	 * autogenerated field
	 */
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="DOCUMENT_ID")
	public Long getDocumentId() {
		return documentId;
	}
	/**
	 * @return the documentName
	 * contains name of document so uploaded
	 * cannot be null
	 * length is 100
	 */
	@Column(name="DOCUMENT_NAME", nullable=false, length=100)
	public String getDocumentName() {
		return documentName;
	}
	/**
	 * @return the documentDesc
	 * contains desc of document to be uploaded
	 * can be null
	 * length is 500
	 */
	@Column(name="DOCUMENT_DESC", length=500)
	public String getDocumentDesc() {
		return documentDesc;
	}
	/**
	 * @return the docTypeId
	 * contains document type id from document type details
	 * cannot be null
	 * length is 10
	 */
	@Column(name="DOCUMENT_TYPE_ID", nullable=false, length=10)
	public Integer getDocTypeId() {
		return docTypeId;
	}
	/**
	 * @return the docCategId
	 * contains document category from doc category details
	 * length is 10
	 */
	@Column(name="DOCUMENT_CATEGORY_ID", length=10)
	public Integer getDocCategId() {
		return docCategId;
	}
	/**
	 * @return the docSubCategId
	 * contains doc sub category 
	 * length is 10
	 */
	@Column(name="DOCUMENT_SUBCATEG_ID", length=10)
	public Integer getDocSubCategId() {
		return docSubCategId;
	}
	/**
	 * @return the docOwnerId
	 * contains the user id of the document owner
	 * length is 30
	 */
	@Column(name="DOCUMENT_OWNER_ID", length=30)
	public String getDocOwnerId() {
		return docOwnerId;
	}
	/**
	 * @return the docOwnerName
	 * contains the name of document owner
	 * length is 50
	 */
	@Column(name="DOCUMENT_OWNER_NAME", length=50)
	public String getDocOwnerName() {
		return docOwnerName;
	}
	/**
	 * @return the docLocationId
	 * contains the locationId of the document
	 * cannot be null
	 * length is 10
	 */
	@Column(name="DOCUMENT_LOCATION_ID", nullable=false, length=10)
	public Integer getDocLocationId() {
		return docLocationId;
	}
	/**
	 * @return the docDepartmentId
	 * contains the department Id of document
	 * cannot be null
	 * length is 10
	 */
	@Column(name="DOCUMENT_DEPTT_ID", nullable=false, length=10)
	public Integer getDocDepartmentId() {
		return docDepartmentId;
	}
	/**
	 * @return the docOrganizationId
	 * contains the organization Id of the document
	 * cannot be null
	 * length is 10
	 */
	@Column(name="DOCUMENT_ORG_ID", nullable=false, length=10)
	public Integer getDocOrganizationId() {
		return docOrganizationId;
	}
	/**
	 * @return the docValidityStartDate
	 * contains validity start date of the document as timestamp
	 * cannot be null
	 */
	@Column(name="DOCUMENT_VALIDITY_START_DATE", nullable=false)
	public Date getDocValidityStartDate() {
		return docValidityStartDate;
	}
	/**
	 * @return the docValidityEndDate
	 * contains validity end date of the document as timestamp
	 * can be null
	 * if null then document cannot be renewed and document is for the lifetime in the system
	 */
	@Column(name="DOCUMENT_VALIDITY_END_DATE")
	public Date getDocValidityEndDate() {
		return docValidityEndDate;
	}
	
	/**
	 * @param documentId the documentId to set
	 */
	public void setDocumentId(Long documentId) {
		this.documentId = documentId;
	}
	/**
	 * @param documentName the documentName to set
	 */
	public void setDocumentName(String documentName) {
		this.documentName = documentName;
	}
	/**
	 * @param documentDesc the documentDesc to set
	 */
	public void setDocumentDesc(String documentDesc) {
		this.documentDesc = documentDesc;
	}
	/**
	 * @param docTypeId the docTypeId to set
	 */
	public void setDocTypeId(Integer docTypeId) {
		this.docTypeId = docTypeId;
	}
	/**
	 * @param docCategId the docCategId to set
	 */
	public void setDocCategId(Integer docCategId) {
		this.docCategId = docCategId;
	}
	/**
	 * @param docSubCategId the docSubCategId to set
	 */
	public void setDocSubCategId(Integer docSubCategId) {
		this.docSubCategId = docSubCategId;
	}
	/**
	 * @param docOwnerId the docOwnerId to set
	 */
	public void setDocOwnerId(String docOwnerId) {
		this.docOwnerId = docOwnerId;
	}
	/**
	 * @param docOwnerName the docOwnerName to set
	 */
	public void setDocOwnerName(String docOwnerName) {
		this.docOwnerName = docOwnerName;
	}
	/**
	 * @param docLocationId the docLocationId to set
	 */
	public void setDocLocationId(Integer docLocationId) {
		this.docLocationId = docLocationId;
	}
	/**
	 * @param docDepartmentId the docDepartmentId to set
	 */
	public void setDocDepartmentId(Integer docDepartmentId) {
		this.docDepartmentId = docDepartmentId;
	}
	/**
	 * @param docOrganizationId the docOrganizationId to set
	 */
	public void setDocOrganizationId(Integer docOrganizationId) {
		this.docOrganizationId = docOrganizationId;
	}
	/**
	 * @param docValidityStartDate the docValidityStartDate to set
	 */
	public void setDocValidityStartDate(Date docValidityStartDate) {
		this.docValidityStartDate = docValidityStartDate;
	}
	/**
	 * @param docValidityEndDate the docValidityEndDate to set
	 */
	public void setDocValidityEndDate(Date docValidityEndDate) {
		this.docValidityEndDate = docValidityEndDate;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "DocumentDetails [documentId=" + documentId + ", documentName="
				+ documentName + ", docTypeId=" + docTypeId + ", docCategId="
				+ docCategId + ", docSubCategId=" + docSubCategId
				+ ", docOwnerId=" + docOwnerId + ", docLocationId="
				+ docLocationId + ", docDepartmentId=" + docDepartmentId
				+ ", docOrganizationId=" + docOrganizationId
				+ ", docValidityStartDate=" + docValidityStartDate
				+ ", docValidityEndDate=" + docValidityEndDate + "]";
	}

	
}
